Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Programmation spaghetti</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Programmation_spaghetti"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Programmation_spaghetti rootpage-Programmation_spaghetti skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Programmation spaghetti</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">

<p>En <a href="Programmation_informatique" title="Programmation informatique">programmation informatique</a>, la <b>programmation spaghetti</b> est un style d'écriture de <a href="Code_source" title="Code source">code source</a> qui favorise l'apparition du <a href="Syndrome_du_plat_de_spaghettis" title="Syndrome du plat de spaghettis">syndrome du plat de spaghettis</a>&nbsp;: un <a href="Code_source" title="Code source">code</a> peu clair et qui fait un usage excessif de sauts inconditionnels (voir <i><a href="Goto_(informatique)" title="Goto (informatique)">goto</a>)</i>, d'exceptions en tous sens, de gestion des événements complexes et de <i><a href="Processus_l%C3%A9ger" class="mw-redirect" title="Processus léger">threads</a></i> divers.
Ce style d'écriture de code est à bannir car il peut engendrer des problèmes graves, comme le montre par exemple le procès de l'affaire Toyota en 2013<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p><p>En fait, la programmation <a href="Spaghetti" title="Spaghetti">spaghetti</a> qualifie tout ce qui ne permet pas de déterminer <a href="QQOQCCP" title="QQOQCCP">le qui, le quoi et le comment</a> d'une prise de contrôle par une portion de programme (incompréhension du flux de contrôle). Le code est donc plus long à mettre à jour car cela nécessite de remonter le fil des renvois<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>.
</p><p>Cette notion s'applique aussi au niveau du flux de données, c'est-à-dire à tout ce qui ne permet pas de déterminer le qui, le quoi et le comment d’une modification de données. Cette situation est causée par un usage excessif de <a href="Couplage_(informatique)" title="Couplage (informatique)">couplage fort</a>.
</p><p>La programmation spaghetti est un exemple d'<a href="Antipattern" title="Antipattern">anti-patron</a>.
</p>

<div class="mw-heading mw-heading2"><h2 id="Exemple_de_flux_de_contrôle_spaghetti"><span id="Exemple_de_flux_de_contr.C3.B4le_spaghetti"></span>Exemple de flux de contrôle spaghetti</h2></div><p>
L'instruction <code><a href="Goto_(informatique)" title="Goto (informatique)">goto</a></code>, ou ses équivalents, est souvent responsable de la production de code spaghetti. Elle est d'ailleurs dépréciée dans les langages modernes pour cette raison. Elle est souvent utilisée dans les langages comme le <a href="BASIC" class="mw-redirect" title="BASIC">BASIC</a> ou l'<a href="Assembleur" title="Assembleur">assembleur</a> (dans ce dernier cas, les branchements inconditionnels sont cependant inévitables). L'exemple suivant, qui affiche la liste des <a href="Entier_naturel" title="Entier naturel">entiers</a> compris entre 1 et 10 ainsi que leur carré, est un exemple de code spaghetti en BASIC&nbsp;:</p><div class="mw-highlight mw-highlight-lang-qbasic mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="il">10</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="il">0</span>
<span class="w"> </span><span class="il">20</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="il">1</span>
<span class="w"> </span><span class="il">30</span><span class="w"> </span><span class="kr">IF</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">&lt;&gt;</span><span class="w"> </span><span class="il">11</span><span class="w"> </span><span class="kr">THEN</span><span class="w"> </span><span class="kr">GOTO</span><span class="w"> </span><span class="nl">80</span>
<span class="w"> </span><span class="il">40</span><span class="w"> </span><span class="kr">IF</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="il">11</span><span class="w"> </span><span class="kr">THEN</span><span class="w"> </span><span class="kr">GOTO</span><span class="w"> </span><span class="nl">60</span>
<span class="w"> </span><span class="il">50</span><span class="w"> </span><span class="kr">GOTO</span><span class="w"> </span><span class="nl">20</span>
<span class="w"> </span><span class="il">60</span><span class="w"> </span><span class="kr">PRINT</span><span class="w"> </span><span class="s2">"Programme terminé."</span>
<span class="w"> </span><span class="il">70</span><span class="w"> </span><span class="kr">END</span>
<span class="w"> </span><span class="il">80</span><span class="w"> </span><span class="kr">PRINT</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="s2">" au carré = "</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="vg">i</span>
<span class="w"> </span><span class="il">90</span><span class="w"> </span><span class="kr">GOTO</span><span class="w"> </span><span class="nl">20</span>
</pre></div>
<p>Le même résultat est obtenu par le programme suivant, plus respectueux des principes de la <a href="Programmation_structur%C3%A9e" title="Programmation structurée">programmation structurée</a>&nbsp;:
</p>
<div class="mw-highlight mw-highlight-lang-qbasic mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="il">10</span><span class="w"> </span><span class="kr">FOR</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="il">1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="il">10</span>
<span class="w"> </span><span class="il">20</span><span class="w"> </span><span class="kr">PRINT</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="s2">" au carré = "</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="vg">i</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="vg">i</span>
<span class="w"> </span><span class="il">30</span><span class="w"> </span><span class="kr">NEXT</span><span class="w"> </span><span class="vg">i</span>
<span class="w"> </span><span class="il">40</span><span class="w"> </span><span class="kr">PRINT</span><span class="w"> </span><span class="s2">"Programme terminé."</span>
<span class="w"> </span><span class="il">50</span><span class="w"> </span><span class="kr">END</span>
</pre></div>
<p>L'exemple suivant, en <a href="Fortran" title="Fortran">Fortran 77</a>, calcule le nombre de solutions du <a href="Probl%C3%A8me_des_huit_dames" title="Problème des huit dames">problème des huit dames</a> généralisé à un damier <i>n</i>×<i>n</i>. La forte imbrication des sauts (<code>goto</code>) rend le programme particulièrement difficile à suivre. L'algorithme consiste en un <i><a href="Retour_sur_trace" title="Retour sur trace">backtracking</a></i> récursif. Les configurations possibles des dames sont considérées comme des <a href="Matrice_de_permutation" title="Matrice de permutation">matrices de permutations</a>, et le programme parcourt toutes les permutations en éliminant les «&nbsp;branches&nbsp;» impossibles, qui sont détectées lorsqu'on trouve deux dames sur une même diagonale. La récursivité, qui n'existe pas en Fortran 77, est elle-même implémentée à l'aide de tableaux et de l'instruction <code>goto</code>.
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">PROGRAM </span><span class="n">DAMES</span>
<span class="w"> </span><span class="k">IMPLICIT </span><span class="kt">INTEGER</span><span class="p">(</span><span class="n">A</span><span class="o">-</span><span class="n">Z</span><span class="p">)</span>
<span class="w"> </span><span class="k">PARAMETER</span><span class="p">(</span><span class="n">L</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="w"> </span><span class="k">DIMENSION </span><span class="n">A</span><span class="p">(</span><span class="n">L</span><span class="p">),</span><span class="n">S</span><span class="p">(</span><span class="n">L</span><span class="p">),</span><span class="n">U</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="n">L</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span>
<span class="w"> </span><span class="k">DO </span><span class="mi">10</span><span class="w"> </span><span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span>
<span class="w"> </span><span class="n">A</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">I</span>
<span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="k">CONTINUE</span>
<span class="k"> DO </span><span class="mi">20</span><span class="w"> </span><span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="mi">4</span><span class="o">*</span><span class="n">L</span><span class="o">-</span><span class="mi">2</span>
<span class="w"> </span><span class="n">U</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span>
<span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="k">CONTINUE</span>
<span class="k"> DO </span><span class="mi">110</span><span class="w"> </span><span class="n">N</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span>
<span class="w"> </span><span class="n">M</span><span class="o">=</span><span class="mi">0</span>
<span class="w"> </span><span class="n">I</span><span class="o">=</span><span class="mi">1</span>
<span class="w"> </span><span class="n">R</span><span class="o">=</span><span class="mi">2</span><span class="o">*</span><span class="n">N</span><span class="o">-</span><span class="mi">1</span>
<span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">40</span>
<span class="w"> </span><span class="mi">30</span><span class="w"> </span><span class="n">S</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">J</span>
<span class="w"> </span><span class="n">U</span><span class="p">(</span><span class="n">P</span><span class="p">)</span><span class="o">=</span><span class="mi">1</span>
<span class="w"> </span><span class="n">U</span><span class="p">(</span><span class="n">Q</span><span class="o">+</span><span class="n">R</span><span class="p">)</span><span class="o">=</span><span class="mi">1</span>
<span class="w"> </span><span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span>
<span class="w"> </span><span class="mi">40</span><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">I</span><span class="p">.</span><span class="n">GT</span><span class="p">.</span><span class="n">N</span><span class="p">)</span><span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">80</span>
<span class="w"> </span><span class="n">J</span><span class="o">=</span><span class="n">I</span>
<span class="w"> </span><span class="mi">50</span><span class="w"> </span><span class="n">Z</span><span class="o">=</span><span class="n">A</span><span class="p">(</span><span class="n">I</span><span class="p">)</span>
<span class="w"> </span><span class="n">Y</span><span class="o">=</span><span class="n">A</span><span class="p">(</span><span class="n">J</span><span class="p">)</span>
<span class="w"> </span><span class="n">P</span><span class="o">=</span><span class="n">I</span><span class="o">-</span><span class="n">Y</span><span class="o">+</span><span class="n">N</span>
<span class="w"> </span><span class="n">Q</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="n">Y</span><span class="o">-</span><span class="mi">1</span>
<span class="w"> </span><span class="n">A</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">Y</span>
<span class="w"> </span><span class="n">A</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="n">Z</span>
<span class="w"> </span><span class="k">IF</span><span class="p">((</span><span class="n">U</span><span class="p">(</span><span class="n">P</span><span class="p">).</span><span class="n">EQ</span><span class="p">.</span><span class="mi">0</span><span class="p">).</span><span class="nb">AND</span><span class="p">.(</span><span class="n">U</span><span class="p">(</span><span class="n">Q</span><span class="o">+</span><span class="n">R</span><span class="p">).</span><span class="n">EQ</span><span class="p">.</span><span class="mi">0</span><span class="p">))</span><span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">30</span>
<span class="w"> </span><span class="mi">60</span><span class="w"> </span><span class="n">J</span><span class="o">=</span><span class="n">J</span><span class="o">+</span><span class="mi">1</span>
<span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">J</span><span class="p">.</span><span class="n">LE</span><span class="p">.</span><span class="n">N</span><span class="p">)</span><span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">50</span>
<span class="w"> </span><span class="mi">70</span><span class="w"> </span><span class="n">J</span><span class="o">=</span><span class="n">J</span><span class="o">-</span><span class="mi">1</span>
<span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">J</span><span class="p">.</span><span class="n">EQ</span><span class="p">.</span><span class="n">I</span><span class="p">)</span><span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">90</span>
<span class="w"> </span><span class="n">Z</span><span class="o">=</span><span class="n">A</span><span class="p">(</span><span class="n">I</span><span class="p">)</span>
<span class="w"> </span><span class="n">A</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">A</span><span class="p">(</span><span class="n">J</span><span class="p">)</span>
<span class="w"> </span><span class="n">A</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="n">Z</span>
<span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">70</span>
<span class="w"> </span><span class="mi">80</span><span class="w"> </span><span class="n">M</span><span class="o">=</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span>
<span class="w"> </span><span class="mi">90</span><span class="w"> </span><span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span>
<span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">I</span><span class="p">.</span><span class="n">EQ</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">100</span>
<span class="w"> </span><span class="n">P</span><span class="o">=</span><span class="n">I</span><span class="o">-</span><span class="n">A</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">+</span><span class="n">N</span>
<span class="w"> </span><span class="n">Q</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="n">A</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span>
<span class="w"> </span><span class="n">J</span><span class="o">=</span><span class="n">S</span><span class="p">(</span><span class="n">I</span><span class="p">)</span>
<span class="w"> </span><span class="n">U</span><span class="p">(</span><span class="n">P</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span>
<span class="w"> </span><span class="n">U</span><span class="p">(</span><span class="n">Q</span><span class="o">+</span><span class="n">R</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span>
<span class="w"> </span><span class="k">GO</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="mi">60</span>
<span class="w"> </span><span class="mi">100</span><span class="w"> </span><span class="k">PRINT</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="n">N</span><span class="p">,</span><span class="n">M</span>
<span class="w"> </span><span class="mi">110</span><span class="w"> </span><span class="k">CONTINUE</span>
<span class="k"> END</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Exemple_de_flux_de_données_spaghetti"><span id="Exemple_de_flux_de_donn.C3.A9es_spaghetti"></span>Exemple de flux de données spaghetti</h2></div>
<div class="mw-highlight mw-highlight-lang-qbasic mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="il">10</span><span class="w"> </span><span class="nl">in:</span><span class="k">INTEGER</span>
<span class="w"> </span><span class="il">20</span><span class="w"> </span><span class="nl">out:</span><span class="k">INTEGER</span>
<span class="w"> </span><span class="il">30</span>
<span class="w"> </span><span class="il">40</span><span class="w"> </span><span class="vg">PROCEDURE</span><span class="w"> </span><span class="vg">Square</span>
<span class="w"> </span><span class="il">50</span><span class="w"> </span><span class="vg">out</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">in</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="vg">in</span>
<span class="w"> </span><span class="il">60</span><span class="w"> </span><span class="kr">END</span><span class="w"> </span><span class="vg">PROCEDURE</span>
</pre></div>
<p>Le même résultat est obtenu par le programme suivant, plus respectueux des principes de la <a href="Programmation_structur%C3%A9e" title="Programmation structurée">programmation structurée</a>&nbsp;:
</p>
<div class="mw-highlight mw-highlight-lang-qbasic mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="il">10</span><span class="w"> </span><span class="kr">FUNCTION</span><span class="w"> </span><span class="vg">Square</span><span class="p">(</span><span class="w"> </span><span class="nl">in:</span><span class="k">INTEGER</span><span class="w"> </span><span class="p">)</span><span class="o">:</span><span class="k">INTEGER</span><span class="w"> </span>
<span class="w"> </span><span class="il">20</span><span class="w"> </span><span class="vg">Square</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">in</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="vg">in</span>
<span class="w"> </span><span class="il">30</span><span class="w"> </span><span class="kr">END</span><span class="w"> </span><span class="kr">FUNCTION</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<ul><li><a href="Grande_boule_de_boue" class="mw-redirect" title="Grande boule de boue">Grande boule de boue</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Research_&amp;_Strategie2016"><span class="ouvrage" id="Safety_Research_&amp;_Strategie2016"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Safety Research &amp; Strategie, «&nbsp;<a rel="nofollow" class="external text" href="https://www.usna.edu/AcResearch/_files/documents/NASEC/2016/CYBER%20-%20Toyota%20Unintended%20Acceleration.pdf"><cite style="font-style:normal;" lang="en">Toyota Unintended Acceleration and the Big Bowl of “Spaghetti”Code</cite></a>&nbsp;», sur <span class="italique">usna.edu</span>, <time class="nowrap" datetime="2016-04-11" data-sort-value="2016-04-11">11 avril 2016</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2021-02-05" data-sort-value="2021-02-05">5 février 2021</time>)</small></span></span>.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Zarmakuizz2014">Zarmakuizz, «&nbsp;<a rel="nofollow" class="external text" href="https://linuxfr.org/news/encore-un-exemple-de-code-spaghetti-toyota"><cite style="font-style:normal;">Encore un exemple de code spaghetti&nbsp;: Toyota</cite></a>&nbsp;», sur <span class="italique">linuxfr.org</span>, <time class="nowrap" datetime="2014-03-06" data-sort-value="2014-03-06">6 mars 2014</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2021-02-05" data-sort-value="2021-02-05">5 février 2021</time>)</small></span>.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.philippebeaubien.com/programmation/download/Notes_de_cours_ppt.ppt">«&nbsp;Programmation par algorithme&nbsp;»</a>, philippebeaubien.com.</span>
</li>
</ol></div>
</div>
<div class="navbox-container" style="clear:both;">

</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-10-26" href="https://fr.wikipedia.org/wiki/?title=Programmation_spaghetti&amp;oldid=230080960">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>